perm filename EICHI.DOC[DOC,TOB] blob sn#155082 filedate 1975-04-16 generic text, type T, neo UTF8


        Display Generated by a Generalized Cone Representation

Eiichi  Miyamoto:  Department of  Information  Engineering,  Hokkaido
University, Sapporo, Japan.

Thomas  O.   Binford:  Artificial  Intelligence  Laboratory, Stanford
University, Stanford, Calif, 94305.
                                  Abstract

We  describe  the  generalized  cone  representation  and   its  data
structure  for  a  class  of three-dimensional  curved  objects,  and
describe  an  algorithm for  hidden  line elimination  for displaying
objects.   In  the  generalized  cone representation,  an  object  is
represented by a  sequence of disjoint slices called  cross sections,
normal  to a space curve called the spine.   Accordingly,   an object
is   displayed with   cross section   edges and   longitudinal  edges
which  connect  corresponding points of two adjacent  cross sections.
Modelling by generalized cones simplifies input for curved objects.

 The program  first  suppresses hidden lines  within  a segment  of a
part, between  two adjacent  cross sections.   Lines hidden  by other
segments of parts are eliminated  by a brute force comparison  of one
segment versus every other segment.
                                    Introduction

We   require   that   a   representation   give   simple   part/whole
decompositions for familiar objects,  decompositions which correspond
to   our intuitive   sense of   parts.   Like   most representations,
the Generalized  Cone representation   is a  part/whole  graph  of an
object structured  into parts  by  cutting  and pasting.   The  parts
may  be structured  into  subparts  to  any  depth.    The difference
between  representations  is   the  choice   of  primitives  and  the
process   which  generates   descriptions  of   objects  within   the
representation.   The design criteria for generalized cone primitives
are:  a) parts   should  be defined  by continuity;  b)  parts should
correspond  to our  intuitive notion   of parts;  c)  parts  which we
regard as similar  should have a simple sense  of similarity   in the
representation; d)  relationships which we regard  as significant for
shape description,  such as thin, should be explicit.  These criteria
imply that primitives should  be volumes rather than  surfaces.  Most
people regard a  block as a single  part, rather than as  six surface
parts.   That  is,   we  don't  segment  at   surface  discontinuity.
Further,  parts  should   be  generated   by  local   volumes;    our
intuitive  segmentations   require  a   rich  set  of primitives.  We
want the local  volumes to be  disjoint for our  own  convenience  in
visualizing.     Thus,  we   seek   volume   primitives   defined  by
continuity.  Generalized cone primitives are defined by a sequence of



thin  slices  normal to  some  space curve   called  the  spine.  The
slices can  be described  by a  continuous function (whose value is a
cross section) along   the  spine.    The  representation   is  based
on  the "generalized  translational invariance"  formalism.   In this
formalism, normal cross sections  are mapped into other  normal cross
sections by translation  followed by some  congruence transformation.
For example,  a cylinder  is defined by  any plane  figure translated
along a straight  line.   A  cone is   defined by  any  plane  figure
translated  along a straight  line,  with a  scaling  function  which
is  linear along  the line.

The representation  of  cross sections  is the  same  problem in  two
dimensions.   The  representation of cross  sections is  a part/whole
representation, with area primitives (not curve primitives) connected
by cutting and pasting.  The primitives are formalized by generalized
translational  invariance in two dimensions, expressed  in terms of a
plane curve called the spine, and straight lines normal  to the spine
(cross sections of one-dimension).

The representation  has been used  in scene analysis  for description
and  recognition   of   curved   objects  [Nevatia,   Agin].      The
representation  describes  parts with  cross  sections  which  change
smoothly along some space curve.
          Data Structure for Generalized Cone Representation

In  the  program,  parts are  described  as  interpolation  functions
(splines)  for samples of cross  sections normal to the  spine.  Thus
parts are  represented as  sequences of  cross sections.   The  cross
sections are described in curve  form, as interpolation functions for
curve samples.  Cross sections may be circles or combinations of line
segments and  arcs.   That  representation for  cross sections  is an
expedient;  it  is inconsistent  with  the  representation for  cross
sections   described  above.     There  are   cross   section   edges
and longitudinal  edges  which  tie  together   corresponding  points
of  adjacent  cross   sections.  Although  arcs   or  curves  are now
displayed  as  line  segments,  the  display  of  longitudinal  edges
connecting  points  on  arcs may  be  suppressed,  because  these are
artifacts.

Each sample  point along a  cross section  is specified by  Cartesian
coordinates  in  the sense  of  a  right screw  in  the  direction of
generation of  the object  (in the  order of  cross  section).   This
ordering determines the interior of the object.  Each point lies on a
cross section edge and a longitudinal edge.  Each edge may be divided
into an arbitrary number of segments by hidden line elimination.

Each object has its own  coordinate system and a relationship  to the



coordinate system of a parent  object or of the world.  Objects which
have the  same parent  are  called siblings.    There exists  a  tree
structure among objects.

When  objects  are   displayed,  their  local  coordinates   must  be
transformed  into  world coordinates.    Let T   be   the translation
                                              i
vector and let R  be  the rotation matrix for transformation  of  the
                i
 t
i h child  to world coordinates.   Then we can set  up  the following
relations:
    T  = T   + R   t     ,
     i    i-1   i-1 i-1,i
    R  = R   r     ,
     i    i-1 i-1,i

where T   is the zero vector and  where R  is the unit matrix.  Here,
       0                                 0
                                   T
t        =   (x     ,y     ,z     )     is   the  translation  vector
 i-1,i         i-1,i  i-1,i  i-1,i
           th
from  the i    child  coordinate frame  to its parent's frame, and
                        i   j   k
                         x   x   x
        r      =     i   j   k
         i-1,i        y   y   y
                        i   j   k
                         z   z   z

                                                          th
is the rotation matrix from the coordinate  frame of the i   child to
its  parent's frame.   The rotation  can  be specified by  a rotation
vector for which the  direction of the  vector specifies the axis  of
rotation  and the  magnitude of  the  vector specifies  the angle  of
rotation in radians.   Given such a rotation  vector w , w ,  w  with
                                                      x   y    z
direction cosines c , c , c  and magnitude W in  radians.  Let  c  be
                   x   y   z                                     w
cos(W)  and  s  be  sin(W).   Then the  relation  between  a rotation
              w
matrix and a rotation vector is as follows:
        i  = (1-c )c c  + c
         x       w  x y    w
        j  = (1-c )c c  + c s
         x       w  x y    z w



        k  = (1-c )c c  + c s
         x       w  x z    y w
        i  = (1-c )c c  + c s
         y       w  y x    z w
        j  = (1-c )c c  + c
         y       w  y y    w
        k  = (1-c )c c  - c s
         y       w  y z    x w
        i  = (1-c )c c  - c s
         z       w  z x    y w
        j  = (1-c )c c  + c s
         z       w  z y    x w
        k  = (1-c )c c  + c
         z       w  z z    w

The screen is chosen as the plane z =  0, and the observer is located
at  the point (0,0,c), in  the world coordinates, where  c>0.  Then a
point  (x,y,z)   in   world  coordinates   projects  to   the   point
(cx/(c-x),cy/(c-y)) on the screen.
                       Hidden Line Elimination

Let us define a piece as the volume between  a pair of adjacent cross
sections.  First,  lines within a piece are eliminated as follows.  A
surface is  visible  if the  normal to  the  surface has  a  positive
component  along the  ray to  the observer.   An  edge is  visible if
either  surface is   visible  at the   edge.   Because of   the sense
of ordering of cross sections, the first cross section is  visible if
its edges  have a clockwise   sense on  the screen,  and  the  second
cross section is visible  if its edges have a  counterclockwise sense
on  the screen.   If the cross section  is convex, the  angle between
successive edges   will be  less than  pi  for clockwise  image,  and
greaer  than pi  for   counterclockwise image.     However,   if  the
cross  section  is nonconvex,  the sum  of angles  between successive
edges will  be 2π if clockwise and -2π if negative.

A  longitudinal plane is  visible if  the angle from  a cross section
edge of  the first  cross section  to  the longitudinal  edge in  the
counterclockwise   sense   is   less  than   π.    (Figure   2).   At
concavities in cross   sections, invisible  longitudinal   planes may
hide  planes  visible by   the  above  condition  (figure  1a).  That
portion  of   the  partially  visible   plane   which   overlaps  the
invisible  plane  is obscured.

The contour edges  of a piece are  those with one visible  surface at
the  edge.    At  concavities  in  the  cross  section,  portions  of
longitudinal edges are interior to  the contour of the piece  (figure
1a).



To eliminate edges  obscured by other pieces, each  piece is compared
with  every  other  piece.    Bounding  rectangles  aligned with  the
coordinate axes of the screen are calculated, and  those pieces whose
bounding rectangles  are disjoint are  immediately ignored.   For the
rest, for  each edge  on  the contour  of a  piece,  if there  is  an
apparent intersection with  edges of the  contour of the  other piece
(within  the line intervals), it  is determined which  line is nearer
the observer at the apparent intersection.

In cases in which the projection of an object is entirely  within the
projection of another object, there is no intersection.  To determine
this  case, the  apparent intersections  of an  extended edge  of the
contour of one piece with  the contour of the other piece  are found.
If  two intersections are  found on  different sides  of the  line, a
hypothetical line is considered between the two intersections for the
larger piece, and it is decided which edge is nearer.  This fails for
some   nonconvex  pieces.     If  the   projections  of   the  pieces
are disjoint,  the two  intersections fall  on the  same side  of the
line.

After the decision of  which piece is  closer, every visible line  of
the further  piece is  checked to remove  the hidden  portion between
apparent  crossing points with  the contour of  the  occluding piece.
Figure 5 demonstrates complex objects after execution  of hidden line
elimination.
                                 Conclusion

The representation of an  object by disjoint slices is convenient for
use in  vision and  planning for  manipulation.   In this  case,  the
primary advantages are ease of input, display  of curved objects with
no artifact edges,  and compact data structure.  The program is being
extended  to   adequately  deal   with  hollow   objects  and   other
nonconvexities.

Reference:  1) Bruce  G. Baumgart;  "Geometric Modeling  for Computer
Vision";  Stanford Artificial Intelligence  Laboratory, Memo AIM-249,
Stanford University, October 1974.